// Elemento.h: interface for the Elemento class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ELEMENTO_H__55C48F3F_FFBB_47A6_847D_0B90E91ACFA1__INCLUDED_)
#define AFX_ELEMENTO_H__55C48F3F_FFBB_47A6_847D_0B90E91ACFA1__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Matriz.h"
#include "Puntos.h"
#include "Primitivas.h"


class Elemento : public Primitivas
{
public:
	Elemento();
	virtual ~Elemento();
	
	void Rotar(double alfa);
	void Transladar(double tx, double ty);
	void Escalar(double ex, double ey);
 
	int color;

	Matriz M_Rotacion(double alfa);  //Devuelve una matriz de rotacion
	Matriz M_Translacion(double tx, double ty);  //Devuelve una matriz de translacion
	Matriz M_Escalado(double ex, double ey);  //Devuelve una matriz de escalado

	Matriz Vector(Puntos *p); //Transforma un punto en un vector
	Puntos Punto(Matriz m);   //Transforma un vector en un punto

	virtual void Dibujar(Matriz m, int *cVP, CDC* pDC);

protected:
	virtual void Transformar(Matriz m);

};

#endif // !defined(AFX_ELEMENTO_H__55C48F3F_FFBB_47A6_847D_0B90E91ACFA1__INCLUDED_)
